package com.huiminpay.merchant.api;

import com.huiminpay.common.cache.domain.BusinessException;
import com.huiminpay.common.cache.domain.PageVO;
import com.huiminpay.merchant.dto.MerchantDto;
import com.huiminpay.merchant.dto.StaffDTO;
import com.huiminpay.merchant.dto.StoreDTO;


public interface MerchantService {
    /**
     * 根据ID查询商户信息
     *
     * @param merchantId
     * @return
     */
    MerchantDto queryMerchantById(Long merchantId) ;
    /**
     * 新增商户
     *  @param merchantDto 商户信息
     *      * @return 新增的商户信息
     */
    MerchantDto creatMerchant1(MerchantDto merchantDto) throws BusinessException;

    /**
     * 商户资质申请
     * @param merchantId
     * @param merchantDto
     * @throws BusinessException
     */
    void applyMerchant(Long merchantId,MerchantDto merchantDto) throws BusinessException;

    /**
     * 新增商店
     * @param storeDTO
     * @return
     * @throws BusinessException
     */
    StoreDTO crestStore(StoreDTO storeDTO) throws BusinessException;

    /**
     * 新增员工
     * @param staffDTO
     * @return
     * @throws BusinessException
     */
    StaffDTO creatStaff(StaffDTO staffDTO) throws BusinessException;

    /**
     * 商店和员工绑定
     * @param storeId
     * @param staffId
     */
    void bindStaffToStore(Long storeId,Long staffId);
    MerchantDto createMerchant(MerchantDto merchantDTO)  throws BusinessException;
    public MerchantDto queryMerchantByTenantId(Long tenantId) ;
    PageVO<StoreDTO> queryStoreByPage(StoreDTO storeDTO,Integer pageNo,Integer pageSize) throws BusinessException;
    /**
     \* 查询门店是否属于某商户
     \* @param storeId
     \* @param merchantId
     \* @return
     */
    Boolean queryStoreInMerchant(Long storeId, Long merchantId);


}
